1805C - Place for a Selfie - CodeForces Solution


binary search geometry math sortings

Please click on ads to support us..

C++ Code:

#include <bits/stdc++.h>

using namespace std;

using i64 = long long;

void solve() {
    int n, m;
    cin >> n >> m;
    
    vector<int> k(n);
    for (int i = 0; i < n; i++) {
        cin >> k[i];
    }
    
    sort(k.begin(), k.end());
    
    for (int i = 0; i < m; i++) {
        int a, b, c;
        cin >> a >> b >> c;
        
        bool ok = true;
        int j = lower_bound(k.begin(), k.end(), b) - k.begin();
        for (auto i : {j - 1, j}) {
            if (i < 0 || i >= n) {
                continue;
            }
            int x = k[i];
            i64 v = 1LL * (b - x) * (b - x) - 4LL * a * c;
            if (v < 0) {
                ok = false;
                cout << "YES\n";
                cout << x << "\n";
                break;
            }
        }
        
        if (ok) {
            cout << "NO\n";
        }
    }
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    
    int t;
    cin >> t;
    
    while (t--) {
        solve();
    }
    
    return 0;
}


Comments

Submit
0 Comments
More Questions

1657C - Bracket Sequence Deletion
1657B - XY Sequence
1009A - Game Shopping
1657A - Integer Moves
230B - T-primes
630A - Again Twenty Five
1234D - Distinct Characters Queries
1183A - Nearest Interesting Number
1009E - Intercity Travelling
1637B - MEX and Array
224A - Parallelepiped
964A - Splits
1615A - Closing The Gap
4C - Registration System
1321A - Contest for Robots
1451A - Subtract or Divide
1B - Spreadsheet
1177A - Digits Sequence (Easy Edition)
1579A - Casimir's String Solitaire
287B - Pipeline
510A - Fox And Snake
1520B - Ordinary Numbers
1624A - Plus One on the Subset
350A - TL
1487A - Arena
1520D - Same Differences
376A - Lever
1305A - Kuroni and the Gifts
1609A - Divide and Multiply
149B - Martian Clock